package com.shujia.wyh.day24;

import java.io.*;

/*
        字符缓冲流特有的方法：
            BufferedWriter:
                public void newLine() throws IOException写一行行分隔符。
                行分隔符字符串由系统属性line.separator定义，并不一定是单个换行符（'\ n'）字符。
            BufferedReader:
                public String readLine() throws IOException读一行文字。
                一行被视为由换行符（'\ n'），回车符（'\ r'）中的任何一个或随后的换行符终止。
 */
public class BufferedReaderDemo2 {
    public static void main(String[] args) {
//        write();
        read();
    }

    public static void read() {
        //创建字符缓冲输入流对象并使用特有的方法读取数据
        BufferedReader br = null;
        try {
            br = new BufferedReader(new FileReader("a.txt"));
//            String s = br.readLine(); //这个方法就是读取一行数据，直到遇到换行符为止
//            System.out.println(s);
//
//            String s1 = br.readLine(); //这个方法就是读取一行数据，直到遇到换行符为止
//            System.out.println(s1);
//
//            String s2 = br.readLine(); //这个方法就是读取一行数据，直到遇到换行符为止
//            System.out.println(s2);
//
//            String s3 = br.readLine(); //这个方法就是读取一行数据，直到遇到换行符为止
//            System.out.println(s3);
            //用循环改进，但是呢我们不知道一个文件有多少行，所以用while循环
            //如果已达到流的末尾，则为null
            String line = null;
            while ((line = br.readLine()) != null) {
//                System.out.println(br.readLine());
                System.out.println(line);
            }


        } catch (IOException e) {
            e.printStackTrace();
        } finally {
            //释放资源
            if (br != null) {
                try {
                    br.close();
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
        }
    }

    public static void write() {
        //创建字符缓冲输出流对象
        BufferedWriter bw = null;
        try {
            bw = new BufferedWriter(new FileWriter("e.txt"));
            bw.write("你好");
//            bw.write("\r\n");
            bw.newLine(); //这个方法会根据系统生成对应的换行符并写入
            bw.write("数加");
        } catch (IOException e) {
            e.printStackTrace();
        } finally {
            //释放资源
            if (bw != null) {
                try {
                    bw.close();
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
        }
    }
}
